/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.aspas.modelo;

import br.com.aspas.modelo.PessoaFisica;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author felipe
 */
@Entity
@Table(name = "cursos_pessoa_fisica")
@NamedQueries({
    @NamedQuery(name = "CursosPessoaFisica.findAll", query = "SELECT c FROM CursosPessoaFisica c"),
    @NamedQuery(name = "CursosPessoaFisica.findByDatainclusao", query = "SELECT c FROM CursosPessoaFisica c WHERE c.datainclusao = :datainclusao"),
    @NamedQuery(name = "CursosPessoaFisica.findByDatamodificacao", query = "SELECT c FROM CursosPessoaFisica c WHERE c.datamodificacao = :datamodificacao"),
    @NamedQuery(name = "CursosPessoaFisica.findByIpinclusao", query = "SELECT c FROM CursosPessoaFisica c WHERE c.ipinclusao = :ipinclusao"),
    @NamedQuery(name = "CursosPessoaFisica.findByIpmodificacao", query = "SELECT c FROM CursosPessoaFisica c WHERE c.ipmodificacao = :ipmodificacao"),
    @NamedQuery(name = "CursosPessoaFisica.findByUsuarioinclusao", query = "SELECT c FROM CursosPessoaFisica c WHERE c.usuarioinclusao = :usuarioinclusao"),
    @NamedQuery(name = "CursosPessoaFisica.findByUsuariomodificacao", query = "SELECT c FROM CursosPessoaFisica c WHERE c.usuariomodificacao = :usuariomodificacao"),
    @NamedQuery(name = "CursosPessoaFisica.findByStatus", query = "SELECT c FROM CursosPessoaFisica c WHERE c.status = :status"),
    @NamedQuery(name = "CursosPessoaFisica.findByPessoaFisicaCodigo", query = "SELECT c FROM CursosPessoaFisica c WHERE c.cursosPessoaFisicaPK.pessoaFisicaCodigo = :pessoaFisicaCodigo"),
    @NamedQuery(name = "CursosPessoaFisica.findByCursosCodigo", query = "SELECT c FROM CursosPessoaFisica c WHERE c.cursosPessoaFisicaPK.cursosCodigo = :cursosCodigo"),
    @NamedQuery(name = "CursosPessoaFisica.findByEvento", query = "SELECT c FROM CursosPessoaFisica c WHERE c.cursosPessoaFisicaPK.evento = :evento")})
public class CursosPessoaFisica implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected CursosPessoaFisicaPK cursosPessoaFisicaPK;
    @Column(name = "datainclusao")
    @Temporal(TemporalType.TIMESTAMP)
    private Date datainclusao;
    @Column(name = "datamodificacao")
    @Temporal(TemporalType.TIMESTAMP)
    private Date datamodificacao;
    @Column(name = "ipinclusao")
    private String ipinclusao;
    @Column(name = "ipmodificacao")
    private String ipmodificacao;
    @Column(name = "usuarioinclusao")
    private String usuarioinclusao;
    @Column(name = "usuariomodificacao")
    private String usuariomodificacao;
    @Column(name = "status")
    private Boolean status;
    @JoinColumns({
        @JoinColumn(name = "cursos_codigo", referencedColumnName = "curso", insertable = false, updatable = false),
        @JoinColumn(name = "evento", referencedColumnName = "evento", insertable = false, updatable = false)})
    @ManyToOne(optional = false)
    private CursosEvento cursosEvento;
    @JoinColumn(name = "pessoa_fisica_codigo", referencedColumnName = "codigo", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private PessoaFisica pessoaFisica;

    public CursosPessoaFisica() {
    }

    public CursosPessoaFisica(CursosPessoaFisicaPK cursosPessoaFisicaPK) {
        this.cursosPessoaFisicaPK = cursosPessoaFisicaPK;
    }

    public CursosPessoaFisica(int pessoaFisicaCodigo, int cursosCodigo, int evento) {
        this.cursosPessoaFisicaPK = new CursosPessoaFisicaPK(pessoaFisicaCodigo, cursosCodigo, evento);
    }

    public CursosPessoaFisicaPK getCursosPessoaFisicaPK() {
        return cursosPessoaFisicaPK;
    }

    public void setCursosPessoaFisicaPK(CursosPessoaFisicaPK cursosPessoaFisicaPK) {
        this.cursosPessoaFisicaPK = cursosPessoaFisicaPK;
    }

    public Date getDatainclusao() {
        return datainclusao;
    }

    public void setDatainclusao(Date datainclusao) {
        this.datainclusao = datainclusao;
    }

    public Date getDatamodificacao() {
        return datamodificacao;
    }

    public void setDatamodificacao(Date datamodificacao) {
        this.datamodificacao = datamodificacao;
    }

    public String getIpinclusao() {
        return ipinclusao;
    }

    public void setIpinclusao(String ipinclusao) {
        this.ipinclusao = ipinclusao;
    }

    public String getIpmodificacao() {
        return ipmodificacao;
    }

    public void setIpmodificacao(String ipmodificacao) {
        this.ipmodificacao = ipmodificacao;
    }

    public String getUsuarioinclusao() {
        return usuarioinclusao;
    }

    public void setUsuarioinclusao(String usuarioinclusao) {
        this.usuarioinclusao = usuarioinclusao;
    }

    public String getUsuariomodificacao() {
        return usuariomodificacao;
    }

    public void setUsuariomodificacao(String usuariomodificacao) {
        this.usuariomodificacao = usuariomodificacao;
    }

    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }

    public CursosEvento getCursosEvento() {
        return cursosEvento;
    }

    public void setCursosEvento(CursosEvento cursosEvento) {
        this.cursosEvento = cursosEvento;
    }

    public PessoaFisica getPessoaFisica() {
        return pessoaFisica;
    }

    public void setPessoaFisica(PessoaFisica pessoaFisica) {
        this.pessoaFisica = pessoaFisica;
    }


    @Override
    public int hashCode() {
        int hash = 0;
        hash += (cursosPessoaFisicaPK != null ? cursosPessoaFisicaPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CursosPessoaFisica)) {
            return false;
        }
        CursosPessoaFisica other = (CursosPessoaFisica) object;
        if ((this.cursosPessoaFisicaPK == null && other.cursosPessoaFisicaPK != null) || (this.cursosPessoaFisicaPK != null && !this.cursosPessoaFisicaPK.equals(other.cursosPessoaFisicaPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "teste.CursosPessoaFisica[cursosPessoaFisicaPK=" + cursosPessoaFisicaPK + "]";
    }

}
